package com.example.cart.domain.dto;

import jakarta.validation.constraints.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.URL;

import java.math.BigDecimal;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CartDTO {
    /**
     * 商品ID（关联商品表）
     * - 非空校验
     * - 正数校验（假设ID为正数）
     */
    @NotNull(message = "sku商品ID不能为空")
    @Positive(message = "sku商品ID必须为正数")
    private Long itemId;

    /**
     * 购买数量（需大于0）
     * - 非空校验
     * - 最小值校验
     */
    @NotNull(message = "购买数量不能为空")
    @Min(value = 1, message = "购买数量必须大于0")
    private Integer num;

    /**
     * 加入购物车时的商品单价（防价格变动）
     * - 非空校验
     * - 正数校验（假设价格不为0或负数）
     * - 精度校验（如限制小数点后2位）
     */
    @NotNull(message = "商品单价不能为空")
    @DecimalMin(value = "0.01", message = "商品单价必须大于0")
    private BigDecimal price;


    /**
     * 是否选中（0：未选中，1：选中）
     * - 非空校验
     */

    private Integer selected ;


    /**
     * 商品封面图URL（冗余存储提升查询性能）
     * - 非空校验（根据业务需求可选）
     * - URL格式校验
     */
    private String image;
}
